package JZOffer;

import java.util.Arrays;

/**
 * @author Lw中
 * @date 2021/8/8 21:34
 */
public class Jz17 {

    // Jz17.打印从1到最大的n位数
    public static int[] printNumbers(int n) {
        // 方法一：算出最大数，然后循环存储数字
//        int last = (int)Math.pow(10, n) - 1;
//        int[] ints = new int[last];
//        for (int i = 0; i < last; i++) {
//            ints[i] = i + 1;
//        }
//        return ints;
        // 方法二：使用字符串存储最大数
        String str = "";
        for (int i = 1; i <= n; i++) {
            str += 9;
        }
        // 将字符串拆解为整型（当str中的’9‘超出范围会报错）
        int integer = Integer.parseInt(str);
        int[] ints = new int[integer];
        for (int i = 0; i < ints.length; i++) {
            ints[i] = i + 1;
        }
        return ints;
        /**
         * LWZ TODO : 2021/8/8 方法三：大数打印解法
         *
         */
    }

    public static void main(String[] args) {
        int[] ints = printNumbers(10);
        System.out.println(Arrays.toString(ints));
    }
}
